package com.youlin.dto.res;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.youlin.entities.BygFarewellHall;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.time.LocalTime;

@NoArgsConstructor
@Data
@Accessors(chain=true)
public class AppointmentResDto {

    /**
     * 预约ID
     */
    @ApiModelProperty(value="预约ID")
    private Integer id;

    /**
     * 告别厅ID
     */
    @ApiModelProperty(hidden = true)
    private Integer fhId;

    /**
     * 告别厅
     */
    @ApiModelProperty(value="告别厅")
    private BygFarewellHall fh;

    /**
     * 告别厅预约使用日期
     */
    @ApiModelProperty(value="告别厅预约使用日期", dataType = "java.lang.String", example = "2020-02-02")
    private LocalDate useDate;

    /**
     * 告别厅预约使用开始时间
     */
    @ApiModelProperty(value="告别厅预约使用开始时间", dataType = "java.lang.String", example = "08:08:08")
    private LocalTime startTime;

    /**
     * 告别厅预约使用结束时间
     */
    @ApiModelProperty(value="告别厅预约使用结束时间", dataType = "java.lang.String", example = "08:08:08")
    private LocalTime endTime;

    /**
     * 告别会状态：0-新建、1-已预约、2-待审核、3-审核中、4-已审核
     */
    @ApiModelProperty(value="告别会状态：0-新建、1-已预约、2-待审核、3-审核中、4-已审核")
    private Integer status;

    @ApiModelProperty(value="预约UUID")
    private String uuId;

    /**
     * 逝者ID
     */
    @JsonIgnore
    @ApiModelProperty(hidden = true)
    private Integer dmId;

    // 逝者信息
    @ApiModelProperty(value="逝者信息")
    private DMListResDto deadMan;

    /**
     * 承办人ID
     */
    @JsonIgnore
    @ApiModelProperty(hidden = true)
    private Integer undertakerId;

    // 承办人信息
    @ApiModelProperty(value="承办人信息")
    private TakerResDto undertaker;

    /**
     * 操作者ID
     */
    @JsonIgnore
    @ApiModelProperty(hidden = true)
    private Integer operatorId;

    // 操作者信息
    @ApiModelProperty(value="操作者信息")
    private AdminResDto operator;

    /**
     * 审核者ID
     */
    @JsonIgnore
    @ApiModelProperty(hidden = true)
    private Integer reviewerId;

    // 审核者信息
    @ApiModelProperty(value="审核者信息")
    private AdminResDto reviewer;

}

